Skip to main content

Upgrading Exivity on Kubernetes

This document provides guidance for smoothly upgrading an Exivity installation deployed on Kubernetes. Following these steps will help ensure a seamless upgrade process and prevent data corruption or service disruption.


1. Create a Backup

Before proceeding with the upgrade, create a full backup of your Exivity installation to safeguard your data in case of unexpected issues.

Refer to the Backup Exivity Installation on Kubernetes guide for detailed instructions on creating a backup.


2. Prepare for the Upgrade

a. Minimize Risk of Data Corruption

In most cases, upgrades can be performed without issues. However, in rare edge cases, file corruption may occur. If this happens, the affected process can typically be re-run to regenerate corrupted files.

To ensure that file corruption does not occur, customers can optionally scale down specific services to zero replicas before upgrading. This precautionary step is not mandatory but can be performed for added safety.

The following services may be scaled down to prevent them from processing jobs during the upgrade:

  • edify: Handles backend processing jobs.
  • use: Manages data extraction and processing.
  • transcript: Executes transformation scripts for ETL operations.

Scaling Down Services (Optional)

Use the Helm command to scale down the services:

helm upgrade --set edify.replicas=0,use.replicas=0,transcript.replicas=0 -n <namespace> <release-name> exivity/exivity

Verify that the replicas for these services have been set to zero:

kubectl get deployment -n <namespace>

Ensure the deployments for edify, use, and transcript show 0 replicas.


3. Perform the Upgrade

Once the backup is complete, proceed with upgrading Exivity using Helm.

helm upgrade -n <namespace> <release-name> exivity/exivity --set version=<new-version>

Replace <new-version> with the desired version of Exivity you wish to upgrade to.

Monitor the Upgrade

After initiating the upgrade, monitor the status of the pods to ensure all services are running as expected:

kubectl get pods -n <namespace>

All pods should transition to a Running state. If any issues arise, refer to the pod logs for debugging:

kubectl logs -n <namespace> <pod-name>

4. Post-Upgrade Steps

a. (If Scaled Down) Scale Services Back Up

If you scaled down services as a precautionary measure, scale them back to their original replica counts once the upgrade is complete and validated. This can be done using Helm:

helm upgrade --set edify.replicas=<original-count>,use.replicas=<original-count>,transcript.replicas=<original-count> -n <namespace> <release-name> exivity/exivity

Replace <original-count> with the previous replica counts for each service.

b. Verify Service Functionality

Ensure that all services are functioning as expected after the upgrade:

  1. Check logs for any errors:

    kubectl logs -n <namespace> <pod-name>
  2. Validate that jobs are running correctly and data processing is proceeding as expected.


Summary

To upgrade Exivity successfully:

  1. Create a backup.
  2. Optionally scale down active services (edify, use, transcript) to zero replicas to minimize the risk of file corruption.
  3. Perform the upgrade using Helm.
  4. (If scaled down) Scale the services back to their original replica counts after the upgrade.
  5. Validate functionality and monitor for any issues.

By following these steps, you can ensure a smooth and reliable upgrade process for your Exivity deployment.